package com.ecoolex.discount.sales.entity;

import com.ecoolex.framework.common.annotation.Description;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import org.springframework.lang.NonNull;

/**
 *
 *   折扣订单<br>
 *<br>
 * 数据表： discount_order
 *
 */
@Description({"折扣订单"})
public class DiscountOrder implements Serializable {
    /**
     *
     *   订单Id    <br>
     *<br>
     * 字段名： discount_order.OrderId
     */
    @Description({"订单Id", "不能为空", "数据长度: 10"})
    @NonNull
    private Integer orderId;

    /**
     *
     *   订单编号    <br>
     *<br>
     * 字段名： discount_order.OrderNo
     */
    @Description({"订单编号", "不能为空", "数据长度: 190"})
    @NonNull
    private String orderNo;

    /**
     *
     *   用户Id    <br>
     *<br>
     * 字段名： discount_order.UserId
     */
    @Description({"用户Id", "不能为空", "数据长度: 10"})
    @NonNull
    private Integer userId;

    /**
     *
     *   用户手机号    <br>
     *<br>
     * 字段名： discount_order.MobileNumber
     */
    @Description({"用户手机号", "数据长度: 50"})
    private String mobileNumber;

    /**
     *
     *   区域类型;国内;国外;    <br>
     *<br>
     * 字段名： discount_order.RegionType
     */
    @Description({"区域类型;国内;国外;", "不能为空", "数据长度: 5"})
    @NonNull
    private Integer regionType;

    /**
     *
     *   折扣品牌Id    <br>
     *<br>
     * 字段名： discount_order.BrandId
     */
    @Description({"折扣品牌Id", "不能为空", "数据长度: 10"})
    @NonNull
    private Integer brandId;

    /**
     *
     *   产品Id    <br>
     *<br>
     * 字段名： discount_order.ProductId
     */
    @Description({"产品Id", "不能为空", "数据长度: 10"})
    @NonNull
    private Integer productId;

    /**
     *
     *   折扣类型;充值/抵用券/礼品卡    <br>
     *<br>
     * 字段名： discount_order.DiscountMode
     */
    @Description({"折扣类型;充值/抵用券/礼品卡", "不能为空", "数据长度: 5"})
    @NonNull
    private Integer discountMode;

    /**
     *
     *   服务类型;    <br>
     *<br>
     * 字段名： discount_order.ServiceType
     */
    @Description({"服务类型;", "不能为空", "数据长度: 5"})
    @NonNull
    private Integer serviceType;

    /**
     *
     *   服务数据Id    <br>
     *<br>
     * 字段名： discount_order.ServiceDataId
     */
    @Description({"服务数据Id", "数据长度: 190"})
    private String serviceDataId;

    /**
     *
     *   充值账户(充值类型时使用)    <br>
     *<br>
     * 字段名： discount_order.RechargeAccount
     */
    @Description({"充值账户(充值类型时使用)", "数据长度: 200"})
    private String rechargeAccount;

    /**
     *
     *   充值账户别名(充值类型时使用)    <br>
     *<br>
     * 字段名： discount_order.RechargeAccountAlias
     */
    @Description({"充值账户别名(充值类型时使用)", "数据长度: 200"})
    private String rechargeAccountAlias;

    /**
     *
     *   购买数量    <br>
     *<br>
     * 字段名： discount_order.BuyNumber
     */
    @Description({"购买数量", "不能为空", "数据长度: 10"})
    @NonNull
    private Integer buyNumber;

    /**
     *
     *   购买专柜价格    <br>
     *<br>
     * 字段名： discount_order.BuyCounterPrice
     */
    @Description({"购买专柜价格", "不能为空", "数据长度: 18"})
    @NonNull
    private BigDecimal buyCounterPrice;

    /**
     *
     *   购买总专柜价格    <br>
     *<br>
     * 字段名： discount_order.BuyTotalCounterPrice
     */
    @Description({"购买总专柜价格", "不能为空", "数据长度: 18"})
    @NonNull
    private BigDecimal buyTotalCounterPrice;

    /**
     *
     *   币种    <br>
     *<br>
     * 字段名： discount_order.CurrencyType
     */
    @Description({"币种", "数据长度: 10"})
    private String currencyType;

    /**
     *
     *   零售价格    <br>
     *<br>
     * 字段名： discount_order.RetailPrice
     */
    @Description({"零售价格", "不能为空", "数据长度: 18"})
    @NonNull
    private BigDecimal retailPrice;

    /**
     *
     *   总零售价格    <br>
     *<br>
     * 字段名： discount_order.TotalRetailPrice
     */
    @Description({"总零售价格", "不能为空", "数据长度: 18"})
    @NonNull
    private BigDecimal totalRetailPrice;

    /**
     *
     *   总价格    <br>
     *<br>
     * 字段名： discount_order.TotalPrice
     */
    @Description({"总价格", "不能为空", "数据长度: 18"})
    @NonNull
    private BigDecimal totalPrice;

    /**
     *
     *   扣减金额    <br>
     *<br>
     * 字段名： discount_order.DiscountPrice
     */
    @Description({"扣减金额", "数据长度: 18"})
    private BigDecimal discountPrice;

    /**
     *
     *   保质期    <br>
     *<br>
     * 字段名： discount_order.ShelfLife
     */
    @Description({"保质期", "数据长度: 26"})
    private Date shelfLife;

    /**
     *
     *   最后的过期时间    <br>
     *<br>
     * 字段名： discount_order.FinalExpiretime
     */
    @Description({"最后的过期时间", "数据长度: 26"})
    private Date finalExpiretime;

    /**
     *
     *   支付渠道    <br>
     *<br>
     * 字段名： discount_order.PaymentChannel
     */
    @Description({"支付渠道", "数据长度: 5"})
    private Integer paymentChannel;

    /**
     *
     *   支付编号    <br>
     *<br>
     * 字段名： discount_order.PaymentNo
     */
    @Description({"支付编号", "数据长度: 190"})
    private String paymentNo;

    /**
     *
     *   支付时间    <br>
     *<br>
     * 字段名： discount_order.PaymentTime
     */
    @Description({"支付时间", "数据长度: 26"})
    private Date paymentTime;

    /**
     *
     *   支付人民币金额    <br>
     *<br>
     * 字段名： discount_order.PaymentRMBAmount
     */
    @Description({"支付人民币金额", "数据长度: 18"})
    private BigDecimal paymentRMBAmount;

    /**
     *
     *   确认收货时间    <br>
     *<br>
     * 字段名： discount_order.ConfirmReceiptTime
     */
    @Description({"确认收货时间", "数据长度: 26"})
    private Date confirmReceiptTime;

    /**
     *
     *   订单状态; 创建订单;取消;支付;处理;退款;完成;    <br>
     *<br>
     * 字段名： discount_order.OrderStatus
     */
    @Description({"订单状态; 创建订单;取消;支付;处理;退款;完成;", "不能为空", "数据长度: 5"})
    @NonNull
    private Integer orderStatus;

    /**
     *
     *   取消状态; 未知;用户取消;自动取消;    <br>
     *<br>
     * 字段名： discount_order.CancelStatus
     */
    @Description({"取消状态; 未知;用户取消;自动取消;", "不能为空", "数据长度: 5"})
    @NonNull
    private Integer cancelStatus;

    /**
     *
     *   处理状态;未知;待处理;处理成功;处理失败;    <br>
     *<br>
     * 字段名： discount_order.ProcessStatus
     */
    @Description({"处理状态;未知;待处理;处理成功;处理失败;", "不能为空", "数据长度: 5"})
    @NonNull
    private Integer processStatus;

    /**
     *
     *   退款状态;未知;申请退款;申请退款失败;申请退款成功;退款中;退款失败;退款成功;    <br>
     *<br>
     * 字段名： discount_order.RefundStatus
     */
    @Description({"退款状态;未知;申请退款;申请退款失败;申请退款成功;退款中;退款失败;退款成功;", "不能为空", "数据长度: 5"})
    @NonNull
    private Integer refundStatus;

    /**
     *
     *   完成状态: 未知;部分完成;全部完成;    <br>
     *<br>
     * 字段名： discount_order.CompleteStatus
     */
    @Description({"完成状态: 未知;部分完成;全部完成;", "不能为空", "数据长度: 5"})
    @NonNull
    private Integer completeStatus;

    /**
     *
     *   处理失败原因    <br>
     *<br>
     * 字段名： discount_order.ProcessFailedReason
     */
    @Description({"处理失败原因", "数据长度: 2000"})
    private String processFailedReason;

    public static final Boolean NOT_DELETED = Deleted.NOT_DELETED.value();

    public static final Boolean IS_DELETED = Deleted.IS_DELETED.value();

    /**
     *
     *   逻辑删除    <br>
     *<br>
     * 字段名： discount_order.Deleted
     */
    @Description({"逻辑删除", "不能为空", "数据长度: 1"})
    @NonNull
    private Boolean deleted;

    /**
     *
     *   创建用户    <br>
     *<br>
     * 字段名： discount_order.CreateUser
     */
    @Description({"创建用户", "不能为空", "数据长度: 50"})
    @NonNull
    private String createUser;

    /**
     *
     *   创建时间    <br>
     *<br>
     * 字段名： discount_order.CreateTime
     */
    @Description({"创建时间", "不能为空", "数据长度: 26"})
    @NonNull
    private Date createTime;

    /**
     *
     *   修改用户    <br>
     *<br>
     * 字段名： discount_order.UpdateUser
     */
    @Description({"修改用户", "不能为空", "数据长度: 50"})
    @NonNull
    private String updateUser;

    /**
     *
     *   修改时间    <br>
     *<br>
     * 字段名： discount_order.UpdateTime
     */
    @Description({"修改时间", "不能为空", "数据长度: 26"})
    @NonNull
    private Date updateTime;

    private static final long serialVersionUID = 1L;

    /**
     * 获取参数<br><br>
     *
     *   订单Id    <br>
     *<br>
     * 字段名： discount_order.OrderId
     */
    public Integer getOrderId() {
        return orderId;
    }

    /**
     * 设置参数<br><br>
     *
     *   订单Id<br>
     *<br>
     * 字段名： discount_order.OrderId
     */
    public void setOrderId(Integer orderId) {
        this.orderId = orderId;
    }

    /**
     * 获取参数<br><br>
     *
     *   订单编号    <br>
     *<br>
     * 字段名： discount_order.OrderNo
     */
    public String getOrderNo() {
        return orderNo;
    }

    /**
     * 设置参数<br><br>
     *
     *   订单编号<br>
     *<br>
     * 字段名： discount_order.OrderNo
     */
    public void setOrderNo(String orderNo) {
        this.orderNo = orderNo == null ? null : orderNo.trim();
    }

    /**
     * 获取参数<br><br>
     *
     *   用户Id    <br>
     *<br>
     * 字段名： discount_order.UserId
     */
    public Integer getUserId() {
        return userId;
    }

    /**
     * 设置参数<br><br>
     *
     *   用户Id<br>
     *<br>
     * 字段名： discount_order.UserId
     */
    public void setUserId(Integer userId) {
        this.userId = userId;
    }

    /**
     * 获取参数<br><br>
     *
     *   用户手机号    <br>
     *<br>
     * 字段名： discount_order.MobileNumber
     */
    public String getMobileNumber() {
        return mobileNumber;
    }

    /**
     * 设置参数<br><br>
     *
     *   用户手机号<br>
     *<br>
     * 字段名： discount_order.MobileNumber
     */
    public void setMobileNumber(String mobileNumber) {
        this.mobileNumber = mobileNumber == null ? null : mobileNumber.trim();
    }

    /**
     * 获取参数<br><br>
     *
     *   区域类型;国内;国外;    <br>
     *<br>
     * 字段名： discount_order.RegionType
     */
    public Integer getRegionType() {
        return regionType;
    }

    /**
     * 设置参数<br><br>
     *
     *   区域类型;国内;国外;<br>
     *<br>
     * 字段名： discount_order.RegionType
     */
    public void setRegionType(Integer regionType) {
        this.regionType = regionType;
    }

    /**
     * 获取参数<br><br>
     *
     *   折扣品牌Id    <br>
     *<br>
     * 字段名： discount_order.BrandId
     */
    public Integer getBrandId() {
        return brandId;
    }

    /**
     * 设置参数<br><br>
     *
     *   折扣品牌Id<br>
     *<br>
     * 字段名： discount_order.BrandId
     */
    public void setBrandId(Integer brandId) {
        this.brandId = brandId;
    }

    /**
     * 获取参数<br><br>
     *
     *   产品Id    <br>
     *<br>
     * 字段名： discount_order.ProductId
     */
    public Integer getProductId() {
        return productId;
    }

    /**
     * 设置参数<br><br>
     *
     *   产品Id<br>
     *<br>
     * 字段名： discount_order.ProductId
     */
    public void setProductId(Integer productId) {
        this.productId = productId;
    }

    /**
     * 获取参数<br><br>
     *
     *   折扣类型;充值/抵用券/礼品卡    <br>
     *<br>
     * 字段名： discount_order.DiscountMode
     */
    public Integer getDiscountMode() {
        return discountMode;
    }

    /**
     * 设置参数<br><br>
     *
     *   折扣类型;充值/抵用券/礼品卡<br>
     *<br>
     * 字段名： discount_order.DiscountMode
     */
    public void setDiscountMode(Integer discountMode) {
        this.discountMode = discountMode;
    }

    /**
     * 获取参数<br><br>
     *
     *   服务类型;    <br>
     *<br>
     * 字段名： discount_order.ServiceType
     */
    public Integer getServiceType() {
        return serviceType;
    }

    /**
     * 设置参数<br><br>
     *
     *   服务类型;<br>
     *<br>
     * 字段名： discount_order.ServiceType
     */
    public void setServiceType(Integer serviceType) {
        this.serviceType = serviceType;
    }

    /**
     * 获取参数<br><br>
     *
     *   服务数据Id    <br>
     *<br>
     * 字段名： discount_order.ServiceDataId
     */
    public String getServiceDataId() {
        return serviceDataId;
    }

    /**
     * 设置参数<br><br>
     *
     *   服务数据Id<br>
     *<br>
     * 字段名： discount_order.ServiceDataId
     */
    public void setServiceDataId(String serviceDataId) {
        this.serviceDataId = serviceDataId == null ? null : serviceDataId.trim();
    }

    /**
     * 获取参数<br><br>
     *
     *   充值账户(充值类型时使用)    <br>
     *<br>
     * 字段名： discount_order.RechargeAccount
     */
    public String getRechargeAccount() {
        return rechargeAccount;
    }

    /**
     * 设置参数<br><br>
     *
     *   充值账户(充值类型时使用)<br>
     *<br>
     * 字段名： discount_order.RechargeAccount
     */
    public void setRechargeAccount(String rechargeAccount) {
        this.rechargeAccount = rechargeAccount == null ? null : rechargeAccount.trim();
    }

    /**
     * 获取参数<br><br>
     *
     *   充值账户别名(充值类型时使用)    <br>
     *<br>
     * 字段名： discount_order.RechargeAccountAlias
     */
    public String getRechargeAccountAlias() {
        return rechargeAccountAlias;
    }

    /**
     * 设置参数<br><br>
     *
     *   充值账户别名(充值类型时使用)<br>
     *<br>
     * 字段名： discount_order.RechargeAccountAlias
     */
    public void setRechargeAccountAlias(String rechargeAccountAlias) {
        this.rechargeAccountAlias = rechargeAccountAlias == null ? null : rechargeAccountAlias.trim();
    }

    /**
     * 获取参数<br><br>
     *
     *   购买数量    <br>
     *<br>
     * 字段名： discount_order.BuyNumber
     */
    public Integer getBuyNumber() {
        return buyNumber;
    }

    /**
     * 设置参数<br><br>
     *
     *   购买数量<br>
     *<br>
     * 字段名： discount_order.BuyNumber
     */
    public void setBuyNumber(Integer buyNumber) {
        this.buyNumber = buyNumber;
    }

    /**
     * 获取参数<br><br>
     *
     *   购买专柜价格    <br>
     *<br>
     * 字段名： discount_order.BuyCounterPrice
     */
    public BigDecimal getBuyCounterPrice() {
        return buyCounterPrice;
    }

    /**
     * 设置参数<br><br>
     *
     *   购买专柜价格<br>
     *<br>
     * 字段名： discount_order.BuyCounterPrice
     */
    public void setBuyCounterPrice(BigDecimal buyCounterPrice) {
        this.buyCounterPrice = buyCounterPrice;
    }

    /**
     * 获取参数<br><br>
     *
     *   购买总专柜价格    <br>
     *<br>
     * 字段名： discount_order.BuyTotalCounterPrice
     */
    public BigDecimal getBuyTotalCounterPrice() {
        return buyTotalCounterPrice;
    }

    /**
     * 设置参数<br><br>
     *
     *   购买总专柜价格<br>
     *<br>
     * 字段名： discount_order.BuyTotalCounterPrice
     */
    public void setBuyTotalCounterPrice(BigDecimal buyTotalCounterPrice) {
        this.buyTotalCounterPrice = buyTotalCounterPrice;
    }

    /**
     * 获取参数<br><br>
     *
     *   币种    <br>
     *<br>
     * 字段名： discount_order.CurrencyType
     */
    public String getCurrencyType() {
        return currencyType;
    }

    /**
     * 设置参数<br><br>
     *
     *   币种<br>
     *<br>
     * 字段名： discount_order.CurrencyType
     */
    public void setCurrencyType(String currencyType) {
        this.currencyType = currencyType == null ? null : currencyType.trim();
    }

    /**
     * 获取参数<br><br>
     *
     *   零售价格    <br>
     *<br>
     * 字段名： discount_order.RetailPrice
     */
    public BigDecimal getRetailPrice() {
        return retailPrice;
    }

    /**
     * 设置参数<br><br>
     *
     *   零售价格<br>
     *<br>
     * 字段名： discount_order.RetailPrice
     */
    public void setRetailPrice(BigDecimal retailPrice) {
        this.retailPrice = retailPrice;
    }

    /**
     * 获取参数<br><br>
     *
     *   总零售价格    <br>
     *<br>
     * 字段名： discount_order.TotalRetailPrice
     */
    public BigDecimal getTotalRetailPrice() {
        return totalRetailPrice;
    }

    /**
     * 设置参数<br><br>
     *
     *   总零售价格<br>
     *<br>
     * 字段名： discount_order.TotalRetailPrice
     */
    public void setTotalRetailPrice(BigDecimal totalRetailPrice) {
        this.totalRetailPrice = totalRetailPrice;
    }

    /**
     * 获取参数<br><br>
     *
     *   总价格    <br>
     *<br>
     * 字段名： discount_order.TotalPrice
     */
    public BigDecimal getTotalPrice() {
        return totalPrice;
    }

    /**
     * 设置参数<br><br>
     *
     *   总价格<br>
     *<br>
     * 字段名： discount_order.TotalPrice
     */
    public void setTotalPrice(BigDecimal totalPrice) {
        this.totalPrice = totalPrice;
    }

    /**
     * 获取参数<br><br>
     *
     *   扣减金额    <br>
     *<br>
     * 字段名： discount_order.DiscountPrice
     */
    public BigDecimal getDiscountPrice() {
        return discountPrice;
    }

    /**
     * 设置参数<br><br>
     *
     *   扣减金额<br>
     *<br>
     * 字段名： discount_order.DiscountPrice
     */
    public void setDiscountPrice(BigDecimal discountPrice) {
        this.discountPrice = discountPrice;
    }

    /**
     * 获取参数<br><br>
     *
     *   保质期    <br>
     *<br>
     * 字段名： discount_order.ShelfLife
     */
    public Date getShelfLife() {
        return shelfLife;
    }

    /**
     * 设置参数<br><br>
     *
     *   保质期<br>
     *<br>
     * 字段名： discount_order.ShelfLife
     */
    public void setShelfLife(Date shelfLife) {
        this.shelfLife = shelfLife;
    }

    /**
     * 获取参数<br><br>
     *
     *   最后的过期时间    <br>
     *<br>
     * 字段名： discount_order.FinalExpiretime
     */
    public Date getFinalExpiretime() {
        return finalExpiretime;
    }

    /**
     * 设置参数<br><br>
     *
     *   最后的过期时间<br>
     *<br>
     * 字段名： discount_order.FinalExpiretime
     */
    public void setFinalExpiretime(Date finalExpiretime) {
        this.finalExpiretime = finalExpiretime;
    }

    /**
     * 获取参数<br><br>
     *
     *   支付渠道    <br>
     *<br>
     * 字段名： discount_order.PaymentChannel
     */
    public Integer getPaymentChannel() {
        return paymentChannel;
    }

    /**
     * 设置参数<br><br>
     *
     *   支付渠道<br>
     *<br>
     * 字段名： discount_order.PaymentChannel
     */
    public void setPaymentChannel(Integer paymentChannel) {
        this.paymentChannel = paymentChannel;
    }

    /**
     * 获取参数<br><br>
     *
     *   支付编号    <br>
     *<br>
     * 字段名： discount_order.PaymentNo
     */
    public String getPaymentNo() {
        return paymentNo;
    }

    /**
     * 设置参数<br><br>
     *
     *   支付编号<br>
     *<br>
     * 字段名： discount_order.PaymentNo
     */
    public void setPaymentNo(String paymentNo) {
        this.paymentNo = paymentNo == null ? null : paymentNo.trim();
    }

    /**
     * 获取参数<br><br>
     *
     *   支付时间    <br>
     *<br>
     * 字段名： discount_order.PaymentTime
     */
    public Date getPaymentTime() {
        return paymentTime;
    }

    /**
     * 设置参数<br><br>
     *
     *   支付时间<br>
     *<br>
     * 字段名： discount_order.PaymentTime
     */
    public void setPaymentTime(Date paymentTime) {
        this.paymentTime = paymentTime;
    }

    /**
     * 获取参数<br><br>
     *
     *   支付人民币金额    <br>
     *<br>
     * 字段名： discount_order.PaymentRMBAmount
     */
    public BigDecimal getPaymentRMBAmount() {
        return paymentRMBAmount;
    }

    /**
     * 设置参数<br><br>
     *
     *   支付人民币金额<br>
     *<br>
     * 字段名： discount_order.PaymentRMBAmount
     */
    public void setPaymentRMBAmount(BigDecimal paymentRMBAmount) {
        this.paymentRMBAmount = paymentRMBAmount;
    }

    /**
     * 获取参数<br><br>
     *
     *   确认收货时间    <br>
     *<br>
     * 字段名： discount_order.ConfirmReceiptTime
     */
    public Date getConfirmReceiptTime() {
        return confirmReceiptTime;
    }

    /**
     * 设置参数<br><br>
     *
     *   确认收货时间<br>
     *<br>
     * 字段名： discount_order.ConfirmReceiptTime
     */
    public void setConfirmReceiptTime(Date confirmReceiptTime) {
        this.confirmReceiptTime = confirmReceiptTime;
    }

    /**
     * 获取参数<br><br>
     *
     *   订单状态; 创建订单;取消;支付;处理;退款;完成;    <br>
     *<br>
     * 字段名： discount_order.OrderStatus
     */
    public Integer getOrderStatus() {
        return orderStatus;
    }

    /**
     * 设置参数<br><br>
     *
     *   订单状态; 创建订单;取消;支付;处理;退款;完成;<br>
     *<br>
     * 字段名： discount_order.OrderStatus
     */
    public void setOrderStatus(Integer orderStatus) {
        this.orderStatus = orderStatus;
    }

    /**
     * 获取参数<br><br>
     *
     *   取消状态; 未知;用户取消;自动取消;    <br>
     *<br>
     * 字段名： discount_order.CancelStatus
     */
    public Integer getCancelStatus() {
        return cancelStatus;
    }

    /**
     * 设置参数<br><br>
     *
     *   取消状态; 未知;用户取消;自动取消;<br>
     *<br>
     * 字段名： discount_order.CancelStatus
     */
    public void setCancelStatus(Integer cancelStatus) {
        this.cancelStatus = cancelStatus;
    }

    /**
     * 获取参数<br><br>
     *
     *   处理状态;未知;待处理;处理成功;处理失败;    <br>
     *<br>
     * 字段名： discount_order.ProcessStatus
     */
    public Integer getProcessStatus() {
        return processStatus;
    }

    /**
     * 设置参数<br><br>
     *
     *   处理状态;未知;待处理;处理成功;处理失败;<br>
     *<br>
     * 字段名： discount_order.ProcessStatus
     */
    public void setProcessStatus(Integer processStatus) {
        this.processStatus = processStatus;
    }

    /**
     * 获取参数<br><br>
     *
     *   退款状态;未知;申请退款;申请退款失败;申请退款成功;退款中;退款失败;退款成功;    <br>
     *<br>
     * 字段名： discount_order.RefundStatus
     */
    public Integer getRefundStatus() {
        return refundStatus;
    }

    /**
     * 设置参数<br><br>
     *
     *   退款状态;未知;申请退款;申请退款失败;申请退款成功;退款中;退款失败;退款成功;<br>
     *<br>
     * 字段名： discount_order.RefundStatus
     */
    public void setRefundStatus(Integer refundStatus) {
        this.refundStatus = refundStatus;
    }

    /**
     * 获取参数<br><br>
     *
     *   完成状态: 未知;部分完成;全部完成;    <br>
     *<br>
     * 字段名： discount_order.CompleteStatus
     */
    public Integer getCompleteStatus() {
        return completeStatus;
    }

    /**
     * 设置参数<br><br>
     *
     *   完成状态: 未知;部分完成;全部完成;<br>
     *<br>
     * 字段名： discount_order.CompleteStatus
     */
    public void setCompleteStatus(Integer completeStatus) {
        this.completeStatus = completeStatus;
    }

    /**
     * 获取参数<br><br>
     *
     *   处理失败原因    <br>
     *<br>
     * 字段名： discount_order.ProcessFailedReason
     */
    public String getProcessFailedReason() {
        return processFailedReason;
    }

    /**
     * 设置参数<br><br>
     *
     *   处理失败原因<br>
     *<br>
     * 字段名： discount_order.ProcessFailedReason
     */
    public void setProcessFailedReason(String processFailedReason) {
        this.processFailedReason = processFailedReason == null ? null : processFailedReason.trim();
    }

    public void andLogicalDeleted(boolean deleted) {
        setDeleted(deleted ? Deleted.IS_DELETED.value() : Deleted.NOT_DELETED.value());
    }

    /**
     * 获取参数<br><br>
     *
     *   逻辑删除    <br>
     *<br>
     * 字段名： discount_order.Deleted
     */
    public Boolean getDeleted() {
        return deleted;
    }

    /**
     * 设置参数<br><br>
     *
     *   逻辑删除<br>
     *<br>
     * 字段名： discount_order.Deleted
     */
    public void setDeleted(Boolean deleted) {
        this.deleted = deleted;
    }

    /**
     * 获取参数<br><br>
     *
     *   创建用户    <br>
     *<br>
     * 字段名： discount_order.CreateUser
     */
    public String getCreateUser() {
        return createUser;
    }

    /**
     * 设置参数<br><br>
     *
     *   创建用户<br>
     *<br>
     * 字段名： discount_order.CreateUser
     */
    public void setCreateUser(String createUser) {
        this.createUser = createUser == null ? null : createUser.trim();
    }

    /**
     * 获取参数<br><br>
     *
     *   创建时间    <br>
     *<br>
     * 字段名： discount_order.CreateTime
     */
    public Date getCreateTime() {
        return createTime;
    }

    /**
     * 设置参数<br><br>
     *
     *   创建时间<br>
     *<br>
     * 字段名： discount_order.CreateTime
     */
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    /**
     * 获取参数<br><br>
     *
     *   修改用户    <br>
     *<br>
     * 字段名： discount_order.UpdateUser
     */
    public String getUpdateUser() {
        return updateUser;
    }

    /**
     * 设置参数<br><br>
     *
     *   修改用户<br>
     *<br>
     * 字段名： discount_order.UpdateUser
     */
    public void setUpdateUser(String updateUser) {
        this.updateUser = updateUser == null ? null : updateUser.trim();
    }

    /**
     * 获取参数<br><br>
     *
     *   修改时间    <br>
     *<br>
     * 字段名： discount_order.UpdateTime
     */
    public Date getUpdateTime() {
        return updateTime;
    }

    /**
     * 设置参数<br><br>
     *
     *   修改时间<br>
     *<br>
     * 字段名： discount_order.UpdateTime
     */
    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    public enum Deleted {
        NOT_DELETED(new Boolean("false"), "未删除"),
        IS_DELETED(new Boolean("true"), "已删除");

        private final Boolean value;

        private final String name;

        Deleted(Boolean value, String name) {
            this.value = value;
            this.name = name;
        }

        public Boolean getValue() {
            return this.value;
        }

        public Boolean value() {
            return this.value;
        }

        public String getName() {
            return this.name;
        }
    }

    public enum Column {
        orderId("OrderId", "orderId", "INTEGER", false),
        orderNo("OrderNo", "orderNo", "VARCHAR", false),
        userId("UserId", "userId", "INTEGER", false),
        mobileNumber("MobileNumber", "mobileNumber", "VARCHAR", false),
        regionType("RegionType", "regionType", "INTEGER", false),
        brandId("BrandId", "brandId", "INTEGER", false),
        productId("ProductId", "productId", "INTEGER", false),
        discountMode("DiscountMode", "discountMode", "INTEGER", false),
        serviceType("ServiceType", "serviceType", "INTEGER", false),
        serviceDataId("ServiceDataId", "serviceDataId", "VARCHAR", false),
        rechargeAccount("RechargeAccount", "rechargeAccount", "VARCHAR", false),
        rechargeAccountAlias("RechargeAccountAlias", "rechargeAccountAlias", "VARCHAR", false),
        buyNumber("BuyNumber", "buyNumber", "INTEGER", false),
        buyCounterPrice("BuyCounterPrice", "buyCounterPrice", "DECIMAL", false),
        buyTotalCounterPrice("BuyTotalCounterPrice", "buyTotalCounterPrice", "DECIMAL", false),
        currencyType("CurrencyType", "currencyType", "VARCHAR", false),
        retailPrice("RetailPrice", "retailPrice", "DECIMAL", false),
        totalRetailPrice("TotalRetailPrice", "totalRetailPrice", "DECIMAL", false),
        totalPrice("TotalPrice", "totalPrice", "DECIMAL", false),
        discountPrice("DiscountPrice", "discountPrice", "DECIMAL", false),
        shelfLife("ShelfLife", "shelfLife", "TIMESTAMP", false),
        finalExpiretime("FinalExpiretime", "finalExpiretime", "TIMESTAMP", false),
        paymentChannel("PaymentChannel", "paymentChannel", "INTEGER", false),
        paymentNo("PaymentNo", "paymentNo", "VARCHAR", false),
        paymentTime("PaymentTime", "paymentTime", "TIMESTAMP", false),
        paymentRMBAmount("PaymentRMBAmount", "paymentRMBAmount", "DECIMAL", false),
        confirmReceiptTime("ConfirmReceiptTime", "confirmReceiptTime", "TIMESTAMP", false),
        orderStatus("OrderStatus", "orderStatus", "INTEGER", false),
        cancelStatus("CancelStatus", "cancelStatus", "INTEGER", false),
        processStatus("ProcessStatus", "processStatus", "INTEGER", false),
        refundStatus("RefundStatus", "refundStatus", "INTEGER", false),
        completeStatus("CompleteStatus", "completeStatus", "INTEGER", false),
        processFailedReason("ProcessFailedReason", "processFailedReason", "VARCHAR", false),
        deleted("Deleted", "deleted", "BIT", false),
        createUser("CreateUser", "createUser", "VARCHAR", true),
        createTime("CreateTime", "createTime", "TIMESTAMP", false),
        updateUser("UpdateUser", "updateUser", "VARCHAR", false),
        updateTime("UpdateTime", "updateTime", "TIMESTAMP", false);

        private static final String BEGINNING_DELIMITER = "`";

        private static final String ENDING_DELIMITER = "`";

        private final String column;

        private final boolean isColumnNameDelimited;

        private final String javaProperty;

        private final String jdbcType;

        public String value() {
            return this.column;
        }

        public String getValue() {
            return this.column;
        }

        public String getJavaProperty() {
            return this.javaProperty;
        }

        public String getJdbcType() {
            return this.jdbcType;
        }

        Column(String column, String javaProperty, String jdbcType, boolean isColumnNameDelimited) {
            this.column = column;
            this.javaProperty = javaProperty;
            this.jdbcType = jdbcType;
            this.isColumnNameDelimited = isColumnNameDelimited;
        }

        public String desc() {
            return this.getEscapedColumnName() + " DESC";
        }

        public String asc() {
            return this.getEscapedColumnName() + " ASC";
        }

        public static Column[] excludes(Column ... excludes) {
            ArrayList<Column> columns = new ArrayList<>(Arrays.asList(Column.values()));
            if (excludes != null && excludes.length > 0) {
                columns.removeAll(new ArrayList<>(Arrays.asList(excludes)));
            }
            return columns.toArray(new Column[]{});
        }

        public String getEscapedColumnName() {
            if (this.isColumnNameDelimited) {
                return new StringBuilder().append(BEGINNING_DELIMITER).append(this.column).append(ENDING_DELIMITER).toString();
            } else {
                return this.column;
            }
        }
    }
}